package com.cn.algorithm02.class02;

import com.cn.algorithm02.class01.CodeUtil;

/***
 * @author: hels
 * @description: 冒泡排序  O(n^2)  冒泡排序是两个位置比较，最大数往后移动，遍历后最终将大数后移
 * @date: 2022-9-23 12:05
 **/
public class C02_BubbleSort {
    public static void main(String[] args) {
        int[] arr = CodeUtil.generatorArray(7, 10, true);
        bubbleSort(arr);
        for (int num: arr) {
            System.out.print(num + " ");
        }
    }

    public static void bubbleSort(int[] arr) {
        // 0- n-1 两两比较找最小数、放0
        // 1- n-1 两两比较找最小数、放1
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length -1 -i ; j++) {
                int minIndex = j + 1;
                minIndex = arr[j] <= arr[minIndex] ? j : minIndex;
                CodeUtil.swap(arr, minIndex, j);
            }
        }
    }
}
